package com.alks.entity.data.entity;

import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alks.entity.deserializer.LocalDateTimeDeserialize;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author author
 * @since 2024-05-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("YF_AP_AMT")
@ApiModel(value="YfApAmt对象", description="")
public class YfApAmt implements Serializable {

    private static final long serialVersionUID = 1L;

    @JsonIgnore
    @ApiModelProperty(value = "公司ID")
    private String companyId;

    @JsonIgnore
    @ApiModelProperty(value = "单据号码")
    private String slipNo;

    @DateTimeFormat("yyyy/MM/dd")
    @JsonIgnore
    @ApiModelProperty(value = "下单日期")
    private LocalDate slipDate;

    @JsonIgnore
    @ApiModelProperty(value = "厂商ID")
    private String vendorNo;

    @JsonIgnore
    @ApiModelProperty(value = "厂商名称")
    private String vendorName;

    @ApiModelProperty(value = "指令")
    private String lotNo;

    @ApiModelProperty(value = "序号")
    private BigDecimal item;

    @ApiModelProperty(value = "物料颜色")
    private String mtlColor;

    @ApiModelProperty(value = "物料名称")
    private String mtlName;

    @ApiModelProperty(value = "物料规格")
    private String mtlSpec;

    @ApiModelProperty(value = "物料单位")
    private String mtlUnit;

    @ApiModelProperty(value = "单价")
    private BigDecimal price;

    @ApiModelProperty(value = "数量")
    private BigDecimal qty;

    @ApiModelProperty(value = "金额")
    private BigDecimal amt;

    @JsonIgnore
    @ApiModelProperty(value = "结算月份")
    private String financeYymm;

    @ApiModelProperty(value = "备注")
    private String remark;

    @JsonDeserialize(using = LocalDateTimeDeserialize.class)
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ApiModelProperty(value = "创建日期")
    private LocalDateTime sysDate;

    @ApiModelProperty(value = "创建人")
    private String sysUser;

    @JsonIgnore
    @ApiModelProperty(value = "检核标志位")
    private String cfmFlag;

    @JsonIgnore
    @ApiModelProperty(value = "检核日期")
    private LocalDate cfmDate;

    @JsonIgnore
    @ApiModelProperty(value = "检核人")
    private String cfmUser;

    @JsonIgnore
    private String accountName;

    @JsonIgnore
    private BigDecimal printTime;

    @JsonIgnore
    @ApiModelProperty(value = "数据源 （0.收货对账 1.费用结算）")
    private Integer orgType;

    @JsonIgnore
    @ApiModelProperty(value = "源ID")
    private Integer orgId;


}
